www.gusucode.com > VC 图书管理系统源码程序 > VC 图书管理系统/VC 图书管理系统/图书管理系统/BookMDlg.cpp
// BookMDlg.cpp : implementation file // #include "stdafx.h" #include "Library.h" #include "BookMDlg.h" #include "BookDataSet.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CBookMDlg dialog CBookMDlg::CBookMDlg(CWnd* pParent /*=NULL*/) : CDialog(CBookMDlg::IDD, pParent) { //{{AFX_DATA_INIT(CBookMDlg) m_strAuthor = _T(""); m_strBookID = _T(""); m_strBookIDQ = _T(""); m_strBookName = _T(""); m_strBookNameQ = _T(""); m_strFlag = _T(""); m_strPress = _T(""); m_strPressDate = _T(""); //}}AFX_DATA_INIT } void CBookMDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CBookMDlg) DDX_Text(pDX, IDC_AUTHOR, m_strAuthor); DDV_MaxChars(pDX, m_strAuthor, 8); DDX_Text(pDX, IDC_BOOKID, m_strBookID); DDV_MaxChars(pDX, m_strBookID, 8); DDX_Text(pDX, IDC_BOOKID_Q, m_strBookIDQ); DDV_MaxChars(pDX, m_strBookIDQ, 8); DDX_Text(pDX, IDC_BOOKNAME, m_strBookName); DDV_MaxChars(pDX, m_strBookName, 8); DDX_Text(pDX, IDC_BOOKNAME_Q, m_strBookNameQ); DDV_MaxChars(pDX, m_strBookNameQ, 8); DDX_Text(pDX, IDC_FLAG_BORROW, m_strFlag); DDV_MaxChars(pDX, m_strFlag, 1); DDX_Text(pDX, IDC_PRESS, m_strPress); DDV_MaxChars(pDX, m_strPress, 20); DDX_Text(pDX, IDC_PRESSDATE, m_strPressDate); DDV_MaxChars(pDX, m_strPressDate, 10); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CBookMDlg, CDialog) //{{AFX_MSG_MAP(CBookMDlg) ON_BN_CLICKED(IDC_CANCEL_REC, OnCancelRec) ON_BN_CLICKED(IDC_DELETE, OnDelete) ON_BN_CLICKED(IDC_EDIT, OnEdit) ON_BN_CLICKED(IDC_ENQUERY, OnEnquery) ON_BN_CLICKED(IDC_EXIT, OnExit) ON_BN_CLICKED(IDC_FIRST, OnFirst) ON_BN_CLICKED(IDC_LAST, OnLast) ON_BN_CLICKED(IDC_NEW, OnNew) ON_BN_CLICKED(IDC_NEXT, OnNext) ON_BN_CLICKED(IDC_PRIOR, OnPrior) ON_BN_CLICKED(IDC_SAVE, OnSave) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CBookMDlg message handlers void CBookMDlg::OnCancelRec() { // TODO: Add your control notification handler code here m_bAdd = FALSE; m_bEdit = FALSE; DisplayRecord(); SetButtonState(); SetTextState(); } void CBookMDlg::OnDelete() { // TODO: Add your control notification handler code here m_rsDataSet.Delete(); DisplayRecord(); SetButtonState(); } void CBookMDlg::OnEdit() { // TODO: Add your control notification handler code here m_bEdit = TRUE; SetButtonState(); SetTextState(); CWnd *pWnd; pWnd = GetDlgItem(IDC_BOOKNAME); pWnd->SetFocus(); } void CBookMDlg::OnEnquery() { // TODO: Add your control notification handler code here UpdateData(TRUE); if (m_strBookIDQ.IsEmpty() && m_strBookNameQ.IsEmpty()) { m_rsDataSet.m_strFilter = ""; m_rsDataSet.Requery(); DisplayRecord(); SetButtonState(); return; } BOOL mAll = FALSE; if (!m_strBookIDQ.IsEmpty()) { m_rsDataSet.m_strFilter = "BOOK_ID='" + m_strBookIDQ ; m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + "'"; mAll = TRUE; } if (!m_strBookNameQ.IsEmpty()) { if (mAll) { m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + " AND BOOK_NAME='"; m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + m_strBookNameQ; m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + "'"; } else { m_rsDataSet.m_strFilter = "BOOK_NAME='" + m_strBookNameQ; m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + "'"; } } m_rsDataSet.Requery(); DisplayRecord(); SetButtonState(); } void CBookMDlg::OnExit() { // TODO: Add your control notification handler code here CDialog::OnCancel(); } void CBookMDlg::OnFirst() { // TODO: Add your control notification handler code here if(!m_rsDataSet.IsBOF()) { m_rsDataSet.MoveFirst(); DisplayRecord(); SetButtonState(); } } void CBookMDlg::OnLast() { // TODO: Add your control notification handler code here if(!m_rsDataSet.IsEOF()) { m_rsDataSet.MoveLast(); DisplayRecord(); SetButtonState(); } } void CBookMDlg::OnNew() { // TODO: Add your control notification handler code here m_strBookID = ""; m_strBookName = ""; m_strAuthor = ""; m_strPress = ""; m_strFlag = "Y"; // m_cntrPosition. UpdateData(FALSE); m_bEdit = TRUE; m_bAdd = TRUE; SetButtonState(); SetTextState(); CWnd *pWnd; pWnd = GetDlgItem(IDC_BOOKID); pWnd->SetFocus(); } void CBookMDlg::OnNext() { // TODO: Add your control notification handler code here if(!m_rsDataSet.IsEOF()) { m_rsDataSet.MoveNext(); DisplayRecord(); SetButtonState(); } } void CBookMDlg::OnPrior() { // TODO: Add your control notification handler code here if(!m_rsDataSet.IsBOF()) { m_rsDataSet.MovePrev(); DisplayRecord(); SetButtonState(); } } void CBookMDlg::OnSave() { // TODO: Add your control notification handler code here UpdateData(TRUE); if (m_strBookID.IsEmpty() || m_strBookName.IsEmpty()) { AfxMessageBox("请输入相应数据!"); return; } if (m_bAdd) { m_rsDataSet.AddNew(); } else { m_rsDataSet.Edit(); } m_rsDataSet.m_AUTHOR = m_strAuthor; m_rsDataSet.m_BOOK_NAME = m_strBookName; m_rsDataSet.m_BOOK_ID = m_strBookID; m_rsDataSet.m_PRESS = m_strPress; m_rsDataSet.m_FLAG_BORROW = m_strFlag; // m_rsDataSet.m_FLAG_BORROW = "Y"; m_rsDataSet.Update(); m_rsDataSet.Requery(); m_bAdd = FALSE; m_bEdit = FALSE; DisplayRecord(); SetButtonState(); SetTextState(); } BOOL CBookMDlg::DisplayRecord() { if (m_rsDataSet.IsEOF() && m_rsDataSet.IsBOF()) { m_strBookID = ""; m_strBookName = ""; m_strPress = ""; m_strAuthor = ""; m_strFlag = ""; } else { if (m_rsDataSet.IsBOF()) { m_rsDataSet.MoveNext(); } else { if (m_rsDataSet.IsEOF()) { m_rsDataSet.MovePrev(); } } m_strBookID = m_rsDataSet.m_BOOK_ID; m_strBookName = m_rsDataSet.m_BOOK_NAME; m_strPress = m_rsDataSet.m_PRESS; m_strAuthor = m_rsDataSet.m_AUTHOR ; m_strFlag = m_rsDataSet.m_FLAG_BORROW ; } UpdateData(FALSE); return TRUE; } BOOL CBookMDlg::SetTextState() { CWnd *pWnd; if (m_bEdit) { pWnd = GetDlgItem(IDC_BOOKNAME); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_BOOKID); if (m_bAdd) pWnd->EnableWindow(TRUE); else pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_AUTHOR); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_PRESS); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_PRESSDATE); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_FLAG_BORROW); pWnd->EnableWindow(TRUE); } else { pWnd = GetDlgItem(IDC_BOOKNAME); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_BOOKID); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_AUTHOR); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_PRESS); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_PRESSDATE); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_FLAG_BORROW); pWnd->EnableWindow(FALSE); } pWnd = GetDlgItem(IDC_BOOKNAME_Q); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_BOOKID_Q); pWnd->EnableWindow(TRUE); return TRUE; } BOOL CBookMDlg::SetButtonState() { CWnd *pWnd; if(!m_rsDataSet.IsOpen()) { pWnd = GetDlgItem(IDC_FIRST); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_NEXT); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_PRIOR); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_LAST); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_NEW); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_EDIT); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_ENQUERY); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_DELETE); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_SAVE); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_CANCEL_REC); pWnd->EnableWindow(FALSE); return TRUE; } if (m_bEdit) { pWnd = GetDlgItem(IDC_FIRST); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_NEXT); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_PRIOR); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_LAST); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_NEW); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_EDIT); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_ENQUERY); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_DELETE); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_SAVE); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_CANCEL_REC); pWnd->EnableWindow(TRUE); return TRUE; } if (m_rsDataSet.IsBOF()) { pWnd = GetDlgItem(IDC_FIRST); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_PRIOR); pWnd->EnableWindow(FALSE); } else { pWnd = GetDlgItem(IDC_FIRST); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_PRIOR); pWnd->EnableWindow(TRUE); } if (m_rsDataSet.IsEOF()) { pWnd = GetDlgItem(IDC_NEXT); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_LAST); pWnd->EnableWindow(FALSE); } else { pWnd = GetDlgItem(IDC_NEXT); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_LAST); pWnd->EnableWindow(TRUE); } if (m_rsDataSet.IsBOF() && m_rsDataSet.IsEOF()) { pWnd = GetDlgItem(IDC_EDIT); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_DELETE); pWnd->EnableWindow(FALSE); } else { pWnd = GetDlgItem(IDC_EDIT); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_DELETE); pWnd->EnableWindow(TRUE); } pWnd = GetDlgItem(IDC_NEW); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_ENQUERY); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_SAVE); pWnd->EnableWindow(FALSE); pWnd = GetDlgItem(IDC_CANCEL_REC); pWnd->EnableWindow(FALSE); return TRUE; } BOOL CBookMDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_bAdd = FALSE; m_bEdit = FALSE; if (!m_rsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE)) AfxMessageBox("数据打开失败!"); DisplayRecord(); SetButtonState(); SetTextState(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }